﻿// ===================================
// <copyright>
// This file is part of LABSMFController.
//
//    LABSMFController is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation, either version 3 of the License, or
//    (at your option) any later version.
//
//    LABSMFController is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.
//
//    You should have received a copy of the GNU General Public License
//    along with LABSMFController.  If not, see <http://www.gnu.org/licenses/>.
//    Copyright 2011 David Bakker
//
//</copyright>
// <author>David Bakker</author>
// <email>mailto:DavidFBakker@gmail.com</email>
// <created>Saturday, May 07, 2011</created>
// <lastedit>Saturday, May 07, 2011</lastedit>
// ===================================

using GHIElectronics.NETMF.FEZ;
using GHIElectronics.NETMF.Hardware;
using Microsoft.SPOT.Hardware;

namespace LABSMFController.LABS.Devices
{
    // ReSharper disable InconsistentNaming

    public static class Devs
    {
        public static class Settings
        {
            public static class PWM0
            {
                public static double Voltage0Angle = .50;
                public static double VoltageStep = 0.025111111;
            }
        }

        #region Nested type: AnalogInDevice

        public static class AnalogInDevice
        {
            #region Nested type: BK_Bubbler

            public static class BK_Bubbler
            {
                public static AnalogIn.Pin PIN = (AnalogIn.Pin) FEZ_Pin.AnalogIn.AD5;
            }

            #endregion

            #region Nested type: HLT_Bubbler

            public static class HLT_Bubbler
            {
                public static AnalogIn.Pin PIN = (AnalogIn.Pin) FEZ_Pin.AnalogIn.AD3;
            }

            #endregion

            #region Nested type: MLT_Bubbler

            public static class MLT_Bubbler
            {
                public static AnalogIn.Pin PIN = (AnalogIn.Pin) FEZ_Pin.AnalogIn.AD6;
            }

            #endregion

            #region Nested type: Pump0_PWMValve

            public static class Pump0_PWMValve
            {
                public static AnalogIn.Pin PIN = (AnalogIn.Pin) FEZ_Pin.AnalogIn.AD7;
            }

            #endregion

            #region Nested type: Pump1_PWMValve

            public static class Pump1_PWMValve
            {
                public static AnalogIn.Pin PIN = (AnalogIn.Pin) FEZ_Pin.AnalogIn.AD2;
            }

            #endregion
        }

        #endregion

        #region Nested type: DigitalDevice

        public static class DigitalDevice
        {
            #region Nested type: BKHeater

            public static class BKHeater
            {
                public static FEZ_Pin.Digital PIN1 = FEZ_Pin.Digital.IO17;
                public static FEZ_Pin.Digital PIN2 = FEZ_Pin.Digital.IO18;
                public static FEZ_Pin.Digital LED = FEZ_Pin.Digital.IO37;
            }

            #endregion

            #region Nested type: HLTHeater

            public static class HLTHeater
            {
                public static FEZ_Pin.Digital PIN1 = FEZ_Pin.Digital.IO15;
                public static FEZ_Pin.Digital PIN2 = FEZ_Pin.Digital.IO16;
                public static FEZ_Pin.Digital LED = FEZ_Pin.Digital.IO34;
            }

            #endregion

            #region Nested type: Pump0

            public static class Pump0
            {
                public static FEZ_Pin.Digital PIN = FEZ_Pin.Digital.IO28;
            }

            #endregion

            #region Nested type: Pump0_PWMValve

            public static class Pump0_PWMValve
            {
                public static FEZ_Pin.Digital PIN = FEZ_Pin.Digital.IO31;
            }

            #endregion

            #region Nested type: Pump1

            public static class Pump1
            {
                public static FEZ_Pin.Digital PIN = FEZ_Pin.Digital.IO9;
            }

            #endregion

            #region Nested type: Pump1_PWMValve

            public static class Pump1_PWMValve
            {
                public static FEZ_Pin.Digital PIN = FEZ_Pin.Digital.IO32;
            }

            #endregion
        }

        #endregion

        #region Nested type: OneWireDevice

        public static class OneWireDevice
        {
            #region Nested type: BK_Temperature

            public static class BK_Temperature
            {
                public static OneWire PIN = new OneWire((Cpu.Pin) FEZ_Pin.Digital.IO23);
            }

            #endregion

            #region Nested type: HLT_Temperature

            public static class HLT_Temperature
            {
                public static OneWire PIN = new OneWire((Cpu.Pin) FEZ_Pin.Digital.IO19);
            }

            #endregion

            #region Nested type: MLT_Temperature

            public static class MLT_Temperature
            {
                public static OneWire PIN = new OneWire((Cpu.Pin) FEZ_Pin.Digital.IO21);
            }

            #endregion
        }

        #endregion

        #region Nested type: RelayDevice

        public static class RelayDevice
        {
            #region Nested type: HLT_KettleValve

            public static class HLT_KettleValve
            {
                public static FEZ_Components.Relay16.RelayChannel LoadPIN = FEZ_Components.Relay16.RelayChannel.Ch17;
                public static FEZ_Components.Relay16.RelayChannel ControlPIN = FEZ_Components.Relay16.RelayChannel.Ch18;
            }

            #endregion

            #region Nested type: Pump0_VValve

            public static class Pump0_VValve
            {
                public static FEZ_Components.Relay16.RelayChannel LoadPIN = FEZ_Components.Relay16.RelayChannel.Ch14;
                public static FEZ_Components.Relay16.RelayChannel ControlPIN = FEZ_Components.Relay16.RelayChannel.Ch15;
            }

            #endregion

            #region Nested type: Pump1_VValve

            public static class Pump1_VValve
            {
                public static FEZ_Components.Relay16.RelayChannel LoadPIN = FEZ_Components.Relay16.RelayChannel.Ch16;
                public static FEZ_Components.Relay16.RelayChannel ControlPIN = FEZ_Components.Relay16.RelayChannel.Ch13;
            }

            #endregion

            #region Nested type: ThreeWay_3_1

            public static class ThreeWay_3_1
            {
                public static FEZ_Components.Relay16.RelayChannel LoadPIN = FEZ_Components.Relay16.RelayChannel.Ch5;

                public static FEZ_Components.Relay16.RelayChannel ControlPIN = FEZ_Components.Relay16.RelayChannel.Ch6;
            }

            #endregion

            #region Nested type: ThreeWay_3_2

            public static class ThreeWay_3_2
            {
                public static FEZ_Components.Relay16.RelayChannel LoadPIN = FEZ_Components.Relay16.RelayChannel.Ch7;

                public static FEZ_Components.Relay16.RelayChannel ControlPIN =
                    FEZ_Components.Relay16.RelayChannel.Ch8;
            }

            #endregion

            #region Nested type: ThreeWay_3_3

            public static class ThreeWay_3_3
            {
                public static FEZ_Components.Relay16.RelayChannel LoadPIN = FEZ_Components.Relay16.RelayChannel.Ch9;

                public static FEZ_Components.Relay16.RelayChannel ControlPIN =
                    FEZ_Components.Relay16.RelayChannel.Ch10;
            }

            #endregion

            #region Nested type: ThreeWay_3_4

            public static class ThreeWay_3_4
            {
                public static FEZ_Components.Relay16.RelayChannel LoadPIN = FEZ_Components.Relay16.RelayChannel.Ch11;

                public static FEZ_Components.Relay16.RelayChannel ControlPIN = FEZ_Components.Relay16.RelayChannel.Ch12;
            }

            #endregion
        }

        #endregion
    }

    // ReSharper restore InconsistentNaming   
}